// accordion
import {Accordion} from './accordion/accordion.component';
import {AccordionPanel} from './accordion/accordion-group.component';
export const ACCORDION_DIRECTIVES = [Accordion, AccordionPanel];

// Collapse
import {Collapse} from './collapse/collapse.component';
export {Collapse} from './collapse/collapse.component';

// dropdown
import {DropdownDirective} from './dropdown/dropdown.directive';
export {DropdownDirective} from './dropdown/dropdown.directive';
import {DropdownMenuDirective} from './dropdown/dropdown-menu.directive';
export {DropdownMenuDirective} from './dropdown/dropdown-menu.directive';
import {DropdownToggleDirective} from './dropdown/dropdown-toggle.directive';
export {DropdownToggleDirective} from './dropdown/dropdown-toggle.directive';
export const DROPDOWN_DIRECTIVES: [any] = [DropdownDirective, DropdownMenuDirective, DropdownToggleDirective];

// file-upload
export {FileUploader} from './file-upload/file-uploader'
import {FileSelect} from './file-upload/file-select';
import {FileDrop} from './file-upload/file-drop';
export const FILE_UPLOAD_DIRECTIVES: [any] = [FileSelect, FileDrop];

// notification
export {SimpleNotificationsComponent} from './notification/simpleNotifications.component';
export {NotificationsService} from './notification/notifications.service';

// sweetalert
// export {SweetalertService} from './sweetalert/sweetalert.service';

// progress
import {Progress} from './progress/progress.directive';
import {Bar} from './progress/bar.component';
import {Progressbar} from './progress/progressbar.component';

export const PROGRESSBAR_DIRECTIVES = [Progress, Bar, Progressbar];

// tooltip
import {Tooltip} from './tooltip/tooltip.directive';
import {TooltipContainer} from './tooltip/tooltip-container.component';

// typeahead
import {TypeaheadDirective} from './typeahead/typeahead.directive';
export {TypeaheadDirective} from './typeahead/typeahead.directive';
import {TypeaheadContainerComponent} from './typeahead/typeahead-container.component';
export {TypeaheadContainerComponent} from './typeahead/typeahead-container.component';
export const TYPEAHEAD_DIRECTIVES: [any] = [TypeaheadDirective, TypeaheadContainerComponent];

// popover
import {Popover} from './popover/popover.directive';
import {PopoverContainer} from './popover/popover-container.component';

export const TOOLTIP_DIRECTIVES = [Tooltip, TooltipContainer, Popover, PopoverContainer, Collapse];

// valid
import {EmailValidator} from './valid/email.directive';
import {EqualToValidator} from './valid/equalTo.directive';
import {IPValidator} from './valid/ip.directive';
import {MaxSizeValidator} from './valid/maxSize.directive';
import {MinSizeValidator} from './valid/minSize.directive';
import {AsyncUniqueValidator} from './valid/async-unique.directive'
import {DomainValidator} from './valid/domain.directive';
import {UniqueValidator} from './valid/unique.directive';

export const CUSTOM_VALIDATOR = [
    EmailValidator,
    EqualToValidator,
    IPValidator,
    MaxSizeValidator,
    MinSizeValidator,
    AsyncUniqueValidator,
    DomainValidator,
    UniqueValidator
];

// pagination
import {TablePaginationComponent} from './table-pagination/table-pagination.component'
export {TablePaginationComponent} from './table-pagination/table-pagination.component'

// easy-pagination
import {EasyPaginationComponent} from './easy-pagination/easy-pagination.component'
export {EasyPaginationComponent} from './easy-pagination/easy-pagination.component'

// table
import {Table} from './wimas-table/directives/table.directive';
import {TableSort} from './wimas-table/directives/table-sort.directive';
import {TableSearch} from './wimas-table/directives/table-search.directive';
import {PaginationComponent} from './wimas-table/components/pagination/pagination.component';

export const TABLE_DIRECTIVES = [Table, PaginationComponent, TableSort, TableSearch,EasyPaginationComponent];

// pipes
import {EllipsisPipe} from './pipes/ellipsis.pipe';
export {EllipsisPipe} from './pipes/ellipsis.pipe';
import {DateFormatPipe} from './pipes/dateformat.pipe';
export {DateFormatPipe} from './pipes/dateformat.pipe';
import {OrderByPipe} from './pipes/orderBy.pipe';
export {OrderByPipe} from './pipes/orderBy.pipe';

export const CUSTOM_PIPE = [
    EllipsisPipe, DateFormatPipe, OrderByPipe
];

// highcharts
// export {Highcharts, HighchartsDirectives} from  './highcharts/highcharts.directives';

// md-radio
//import {MdRadioGroup, MdRadioButton} from '@angular2-material/radio';
//export {MdRadioGroup, MdRadioButton, MdRadioDispatcher} from '@angular2-material/radio';
//// md-checkbox
//import {MdCheckbox} from '@angular2-material/checkbox';
//export {MdCheckbox} from '@angular2-material/checkbox';
//// md-slidnav
//export {MD_SIDENAV_DIRECTIVES} from '@angular2-material/sidenav';
//export const BASE_DIRECTIVES = [MdRadioGroup, MdRadioButton, MdCheckbox];

export const EXTEND_DIRECTIVES = [
    Collapse,
    Accordion, AccordionPanel,
    FileSelect, FileDrop,
    Progress, Bar, Progressbar,
    DropdownDirective, DropdownMenuDirective, DropdownToggleDirective,
    TypeaheadDirective, TypeaheadContainerComponent,
    Tooltip, TooltipContainer, Popover, PopoverContainer,
    Table, PaginationComponent, TableSort, TableSearch,EasyPaginationComponent,
    EmailValidator,
    EqualToValidator,
    IPValidator,
    MaxSizeValidator,
    MinSizeValidator,
    AsyncUniqueValidator,
    DomainValidator,
    UniqueValidator
];